package com.firestone.bean.entity.elasticsearch.dm;

import com.firestone.bean.entity.elasticsearch.nested.AuthorizedSignatoryAndArea;
import com.firestone.bean.entity.elasticsearch.nested.TestRange;
import com.firestone.bean.entity.elasticsearch.nested.WeightJson;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.*;

import java.io.Serializable;
import java.util.List;

/**
 * @author dingjc
 * @Description：ODO(数据工厂 dm_CNAS认可医学实验室表 Elasticsearch bean)
 *  *              DM数据工厂ES表不由该系统维护，请将createIndex设为false，避免系统启动时修改了大数据维护表的索引
 * @date 2018年04月18日  上午 11:10
 */
@Document( indexName = "dm_map_cnas_medlab" ,type = "index",createIndex = true)
@Setting(settingPath = "/setting/setting.json")
public class DmMapCnasMedlab implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    private String id;

    /**
     *  SYS_add_time : TODO(添加时间)
     */
    @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private String SYS_add_time;

    /**
     *  SYS_add_time : TODO(检验时间)
     */
    @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private String SYS_check_time;

    /**
     *  SYS_add_time : TODO(更改时间)
     */
    @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private String SYS_dm_update_time;

    /**
     *  address : TODO(单位地址)
     */
    @Field(type = FieldType.text,analyzer = "ik_max_word")
    private String address;

    /**
     *  authorized_signatory_and_area:TODO(能力范围-认可的授权签字人及领域)
     */
    @Field(type = FieldType.Nested)
    private List<AuthorizedSignatoryAndArea> authorized_signatory_and_area;

    /**
     *  competence_scope_datalist:TODO(能力范围数据列表)
     */
    @Field(type = FieldType.Nested)
    private List<AuthorizedSignatoryAndArea> competence_scope_datalist;

    /**
     * contact_email:TODO(电子邮箱)
     */
    @Field(type = FieldType.keyword)
    private String contact_email;

    /**
     * contact_name:TODO(联系人)
     */
    @Field(type = FieldType.keyword)
    private String contact_name;

    /**
     * contact_phone:TODO(联系电话)
     */
    @Field(type = FieldType.keyword)
    private String contact_phone;

    /**
     * fax_number:TODO(传真号码)
     */
    @Field(type = FieldType.keyword)
    private String fax_number;

    /**
     *  institution_name : TODO(机构名称)
     */
    @Field(type = FieldType.text,analyzer = "ik_max_word")
    private String institution_name;

    /**
     *  other_name : TODO(报告/证书允许使用认可标识的其他名称)
     */
    @Field(type = FieldType.text,analyzer = "ik_max_word")
    private String other_name;

    /**
     * registration_number:TODO(注册编号)
     */
    @Field(type = FieldType.keyword)
    private String registration_number;

    /**
     *  suspend_project : TODO(暂停项目/参数)
     */
    @Field(type = FieldType.text,analyzer = "ik_max_word")
    private String suspend_project;

    /**
     *  test_range:TODO(能力范围-认可的检验能力范围)
     */
    @Field(type = FieldType.Nested)
    private List<TestRange>  test_range;

    /**
     *  valid_period : TODO(认可有效期限)
     */
    @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd")
    private String valid_period;

    /**
     * web_address:TODO(网站地址)
     */
    @Field(type = FieldType.keyword)
    private String web_address;

    /**
     * weight_json:TODO(字段来源)
     */
    @Field(type = FieldType.Nested)
    private List<WeightJson> weight_json;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getSYS_add_time() {
        return SYS_add_time;
    }

    public void setSYS_add_time(String SYS_add_time) {
        this.SYS_add_time = SYS_add_time;
    }

    public String getSYS_check_time() {
        return SYS_check_time;
    }

    public void setSYS_check_time(String SYS_check_time) {
        this.SYS_check_time = SYS_check_time;
    }

    public String getSYS_dm_update_time() {
        return SYS_dm_update_time;
    }

    public void setSYS_dm_update_time(String SYS_dm_update_time) {
        this.SYS_dm_update_time = SYS_dm_update_time;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public List<AuthorizedSignatoryAndArea> getAuthorized_signatory_and_area() {
        return authorized_signatory_and_area;
    }

    public void setAuthorized_signatory_and_area(List<AuthorizedSignatoryAndArea> authorized_signatory_and_area) {
        this.authorized_signatory_and_area = authorized_signatory_and_area;
    }

    public List<AuthorizedSignatoryAndArea> getCompetence_scope_datalist() {
        return competence_scope_datalist;
    }

    public void setCompetence_scope_datalist(List<AuthorizedSignatoryAndArea> competence_scope_datalist) {
        this.competence_scope_datalist = competence_scope_datalist;
    }

    public String getContact_email() {
        return contact_email;
    }

    public void setContact_email(String contact_email) {
        this.contact_email = contact_email;
    }

    public String getContact_name() {
        return contact_name;
    }

    public void setContact_name(String contact_name) {
        this.contact_name = contact_name;
    }

    public String getContact_phone() {
        return contact_phone;
    }

    public void setContact_phone(String contact_phone) {
        this.contact_phone = contact_phone;
    }

    public String getFax_number() {
        return fax_number;
    }

    public void setFax_number(String fax_number) {
        this.fax_number = fax_number;
    }

    public String getInstitution_name() {
        return institution_name;
    }

    public void setInstitution_name(String institution_name) {
        this.institution_name = institution_name;
    }

    public String getOther_name() {
        return other_name;
    }

    public void setOther_name(String other_name) {
        this.other_name = other_name;
    }

    public String getRegistration_number() {
        return registration_number;
    }

    public void setRegistration_number(String registration_number) {
        this.registration_number = registration_number;
    }

    public String getSuspend_project() {
        return suspend_project;
    }

    public void setSuspend_project(String suspend_project) {
        this.suspend_project = suspend_project;
    }

    public List<TestRange> getTest_range() {
        return test_range;
    }

    public void setTest_range(List<TestRange> test_range) {
        this.test_range = test_range;
    }

    public String getValid_period() {
        return valid_period;
    }

    public void setValid_period(String valid_period) {
        this.valid_period = valid_period;
    }

    public String getWeb_address() {
        return web_address;
    }

    public void setWeb_address(String web_address) {
        this.web_address = web_address;
    }

    public List<WeightJson> getWeight_json() {
        return weight_json;
    }

    public void setWeight_json(List<WeightJson> weight_json) {
        this.weight_json = weight_json;
    }
}
